시험종목 : 제1701회 리눅스마스터 1급 2차
시험일자 : 2017. 5. 13(토) 14:00 ~ 15:40(100분)
바로가기 >> 리눅스마스터 기출문제 목록
useradd
사용자 계정 생성
주요 옵션
-d : 홈 디렉터리를 지정할 때 쓰인다. 최종 디렉터리만 생성하므로 중간 경로가 있는 경우에는 미리 생성해야 한다.
-g : 그룹을 지정할 때 사용하는데, 지정할 그룹이 미리 생성되어 있어야 한다.
-G : 기본 그룹 이외에 추가로 그룹에 속하게 할 경우에 쓴다.
-c : 사용자 생성 시 사용자에 대한 설명을 설정한다.
-s : 사용자 생성 시 사용자가 사용할 셸을 지정한다.
-f : 사용자의 패스워드 만기일을 날짜수로 지정한다.
-e : 계정의 만기일을 YYYY-MM-DD 형식으로 지정한다.
-u : 사용자 추가 시에 UID 값을 지정한다.
정답
① n
② 8e
fdisk
디스크 파티션을 확인하고 추가/삭제하는 명령으로 설정 후에는 반드시 재부팅을 해야 한다.
fdisk 명령을 실행하면 텍스트 기반의 특정 명령어를 입력해야 파티션을 설정할 수 있다. 처음 실행하면 ‘Command (m for help): ‘ 나타 나는데 ‘m’ 을 누르면 사용 가능한 명령의 목록을 출력해준다.
fdisk 실행 시 주요명령
p : 현재 디스크의 정보를 출력한다.
d : 파티션을 삭제한다.
n : 파티션을 새롭게 생성(추가)한다.
t : 파티션의 속성을 변경한다. 주요 코드로는 82(Swap), 83(Linux), 8e(Linux LVM), fd(Raid) 등이 있다.
w : 변경된 파티션의 정보를 저장하고 종료한다.
q : 변경된 파티션의 정보를 저장하지 않고 종료한다.
정답
renice
nice
프로세스의 우선순위를 변경하는 명령으로 NI 값을 설정할 때 사용한다. 프로세스에 설정되어 있는 NI 의 기본값은 0 이고, 지정 가능한 값의 범위는 -20 ~ 19 까지인데 값이 작을수록 우선순위가 높다. nice 명령으로 지정하는 값은 기존 설정된 값에 증감하는 형식이며, 일반 사용자는 NI 값을 증가만 가능하고, root 사용자만이 NI 값을 감소시켜 우선순위를 높일 수 있다.
주요옵션
-n 값, -값, adjustment=값 : 프로세스에 설정된 NI 값을 지정한 NI 값과 증감한다. 값을 지정하지 않으면 기본적으로 10 이 지정된다.
사용예
$ nice -10 bash
bash 프로세스에 NI 값을 10 만큼 증가시킨다. ‘nice -n 10 bash’, ‘nice adjustment=10 bash’, 와 같다.
# nice 10 bash
bash 의 NI 값을 -10 만큼 감소시켜서 우선순위를 높인다.
# nice bash
bash 의 NI 값을 10 만큼 증가시켜서 우선순위를 낮춘다.
renice
실행중인 프로세스의 우선순위를 변경할 때 사용하는 명령으로 PID, 사용자 이름, 프로세스의 그룹ID 를 이용한다. nice 는 프로세스명으로 우선순위를 조정하고, 명령을 실행하면 새로운 프로세스가 추가로 발생되지만, renice 는 주로 PID 를 사용하고 기존의 프로세스를 교체하여 조정한다. 또한 nice 는 기존의 NI 값에 증감되는 형태이지만, renice 는 기존의 NI 값에 상관없이 지정한 NI 값이 바로 설정된다. nice 와 동일하게 root 만이 NI 값을 낮춤으로써 우선순위를 높일 수 있고, NI 값의 범위는 -20 ~ 19 이다.
사용예
$ renice 10 2878
PID 가 2878 인 프로세스의 NI 값을 10 으로 지정한다.
정답
① -qf
② force
RPM 의 개요
레드햇사에서 만든 패키지 관리 기법으로 프로그램을 .rpm 형태의 파일로 배포하고, rpm 명령어를 사용한다.
rpm 명령의 사용법은 설치 및 갱신, 제거, 질의, 검증 모드와 소스 rpm(.src.rpm)의 리빌드(rebuild) 모드 등 총 5가지로 나눌 수 있다.
설치 및 업데이트 모드
새로운 패키지를 설치하거나 갱신을 할 수 있다.
주요 옵션
-i : 새로운 패키지를 설치할 때 사용한다. 기본적으로 이전 버전의 같은 패키지가 있을 경우 설치가 되지 않는다.( install)
-U : 기존의 패키지를 새로운 패키지로 업그레이드할 때 사용한다. 만약 설치된 패키지가 없을 경우에도 새로운 버전을 설치할 수 있는데 이 경우에는 -i 옵션과 같다고 볼 수 있다.( upgrade)
-F : 이전 버전이 설치되어 있는 경우에만 설치한다.( freshen)
-v : 메시지를 자세히 보여준다.
-h : 설치 상황을 ‘#’ 기호 표시해 준다.( hash)
force : 기존 버전이 설치되었을 경우처럼 강제로 설치할 때 사용한다.
nodeps : 의존성 관계를 무시하고 설치한다. rpm 설치 시에 의존성 관계에 있는 패키지가 존재하지 않을 경우에는 설치가 되지 않는데, 그런 경우 강제로 설치할 때 사용한다.
-vv : 메시지를 아주 자세히 보여준다.
test : 실제로 파일에 기록하는 작업을 제외한 대부분을 테스트할 때 사용한다. 패키지를 실제 설치하기 전에 제대로 설치되는지 테스트해 볼 경우에 사용한다. 보통 -vv 와 같이 사용한다.
rebuilddb : 특정한 패키지 설치 후에 rpm 패키지를 검색했으나 나타나지 않을 때 rpm 데이터베이스를 업데이트할 때 사용한다.
제거(erase) 모드
설치된 패키지를 제거한다. 패키지를 제거할 때는 -e 옵션을 사용하는데, 다른 패키지에 대한 의존성이 발생한 경우에는 제거되지 않는다. 의존성이 발생한 패키지를 제거하기 위해서는 먼저 의존성 관련 패키지를 제거하거나, 추가로 nodeps 옵션을 지정해야 한다.
주요 옵션
-e : 설치된 패키지를 삭제한다. 의존성을 갖는 패키지가 있는 경우에는 삭제되지 않는다.( erase)
nodeps : 의존성을 갖는 패키지가 존재하는 경우에도 삭제한다.
test : 실제로 제거하지 않고, 테스트를 한다. 보통 vv 옵션과 함께 사용한다.
질의(query) 모드
패키지 관련 정보를 알아내기 위해 -q 옵션을 사용한다. -q 옵션만 사용하면 패키지 설치 유무나 간단한 버전정보만 출력한다. 더욱 정확한 정보출력을 위해서 -i, -a -l, -d 등의 옵션과 연동해서 쓴다.
주요 옵션
-q : 질의 시에 꼭 사용해야 하는 옵션이다. 패키지를 찾으면 패키지 이름과 버전만 표시한다.( query)
-i : 설치된 패키지의 정보를 출력한다. -p 옵션과 같이 사용하면 rpm 패키지 파일에 대한 정보를 알 수 있다.( info)
-l : 패키지에서 설치한 모든 파일 정보를 출력한다. 역시 -p 와 함께 사용하면 rpm 패키지 파일이 성치되는 목록 파일을 알 수 있다.( list)
-a : 시스템에 설치된 모든 패키지 목록을 출력한다.( all)
-p 패키지_파일명 : rpm 패키지의 파일에 대한 정보를 보여준다. 이 옵션을 사용하려면 패키지 파일의 정확한 이름을 입력해야 한다.
-f 파일명 : 지정한 파일을 설치한 패키지 이름을 출력한다.
-c : 해당 패키지의 설정 파일이나 스크립트 파일을 출력한다.
-d : 해당 패키지의 문서 파일을 출력한다.
-R : 어떤 패키지에 의존하고 있는지를 보여준다. 즉, 해당패키지가 설치되거나 동작시에 필요한 패키지 목록을 보여준다.( requires)
검증(Verify) 모드
검증 모드는 rpm 데이터베이스에 저장되어 있는 패키지의 메타데이터(metadata) 정보를 이용하여 변경된 정보를 찾아내는 모드이다. 검증모드는 -V( verify) 옵션을 사용하고 파일의 크기, 허가권, 소유권, 파일 형식 등에 대한 변경 정보를 출력한다. 관련 검증 코드는 다음의 표와 같다.
주요 옵션
-V : 검증 시 사용하는 기본 옵션이다.( verify)
-a : 모든 패키지를 검사할 때 사용한다.
리빌드(rebuild) 모드 : rpmbuild
rpm 소스 파일인 .src.rpm 파일을 패키지 파일로 만드는 모드로서 rpmbuild 라는 명령어를 사용한다.
주요 옵션
rebuild : 소스 rpm 파일을 이용해서 rpm 패키지를 생성할 때 사용한다.
# rpmbuild rebuild gftp-2.0.19-8.fc18src.rpm
root 가 실행했을 경우에 /root/rpmbuild 디렉터리 안에 생성한다. 만약 x86_64 기반에서 리빌드 했을 경우 rpm 패키지 파일은 /rpm/rpmbuild/RPMS/x86_64 디렉터리에 생성된다.
정답
① sr_mod
② cdrom
rmmod
커널에서 모듈을 제거하는 명령으로 다른 모듈에 의해 사용 중인 모듈을 제거할 수 없다.
# rmmod ip6table_filter
ip6table_filter 모듈을 제거한다.
정답
① /dev/sdd1
② /data01
③ 0
④ 0
/etc/fstab
이 파일은 파일 시스템에 대한 다양한 정보를 담고 있는 파일로 부팅 시에 마운트할 파티션 정보가 기록되어 있는 파일이기도 하다. 파티션 정보를 변경하였거나 디스크를 추가한 경우 이 파일에 등록해야만 부팅 시에 자동으로 마운트할 수 있다. mount, umount, fsck 등의 명령어가 수행될때 이 파일의 정보를 참조한다. /etc/fstab 파일은 총 6개의 필드로 구성되어 있다.
fstab 의 필드 구성
첫 번째 : 장치명이 기록되는 영역이었으나 최근 리눅스 배포판에서는 볼률 라벨(Volume Lable)이나 UUID 가 대신 사용되고 있다. ex) /dev/sdb1, LABEL=/, UUID=fs853197-a750-9739-0bd243cb8caa 등
두 번째 : 마운트될 디렉터리(Mount point)를 나타낸다.
세 번째 : 파일 시스템의 유형을 나타낸다. ex) ext3, ext4, swap, nfs 등
네 번째 : 마운트될 때의 옵션을 나타낸다ㅣ ex) defaults, usrquota, grpquota, acl 등
다섯 번째 : dump 명령을 통한 백업 시 레벨 덤프 사용주기를 결정하는 부분으로 0 이면 dump 를 사용하지 않고, 1 이면 매일 수행, 2 이면 이틀에 한번 수행한다.
여섯 번째 : 부팅 시 파일 시스템을 점검하는 fsck 명령의 순서를 정한다. 보통 루트 파일 시스템을 1 로 설정하여 가장 먼저 점검하고, 다른 파일 시스템은 2 로 설정하여 두 번째로 점검한다. 0 으로 설정하면 부팅 시에 해당 파일 시스템은 검사하지 않는다.
fstab 4 번째 필드의 주요 옵션
defaults : rw, suid, dev, exec, auto, nouser, async 가 적용된다.
auto : 시스템 부팅 시 미디어가 존재하면 자동으로 마운트해 주고, -a 옵션을 이용한 마운트 및 활성돠 등의 기능을 가능하게 한다.
noauto : 시스템 부팅 시 자동으로 마운트가 되지 않도록 하는 옵션으로 명시적으로만 마운트가 가능하다. -a 옵션을 이용한 마운트는 되지 않는다.
user : 로컬(Local) 시스템에서 일반 사용자가 마운트할 수 있는 권한을 부여한다.
usrquota : 사용자의 용량을 제한하는 Disk quota 를 사용할 때 해당 영역에 설정한다.
grpquota : Disk quota 를 그룹별로 사용할 때 해당 영역에 설정한다.
noquota : 해당 파티션에서 사용자들이 Quota 를 설정하지 안는다.
nosuid : 해당 파티션에서 SUID 나 SGID 설정을 허용하지 않는다.
nodev : 해당 파티션에서 문자나 특별한 장치(디바이스)를 허용하지 않는다.
noexec : 해당 파티션에서 실행파일이 실행되지 않도록 설정한다.
suid : 해당 파티션에서 SUID 나 SGID 의 사용을 허가한다.
ro : 해당 파티션을 읽기 전용(read-only)으로 설정한다.
rw : 해당 파티션을 읽고 쓰기(read-write) 모드로 설정한다.
async : 파일을 비동기적으로 관리하도록 설정한다.
acl : Access Control Lists 를 사용한다.
정답
① mail.*;mail.!=debug
② /var/log/mail.log
rsyslog
rsyslog 는 rsyslogd 데몬이 동작하면서 로그를 기록하고, 데몬의 동작은 /etc/rc.d/init.d/rsyslog 라는 스크립트를 이용한다. 관련 환경 설정은 /etc/rsyslog.conf 파일을 통해서 제어한다.
/etc/rsyslog.conf
기본 구성 형식
facility.priority action
facility 는 일종의 서비스를 의미하는데, 메시지를 발생시키는 프로그램의 유형이라고 볼 수 있다. priority 는 위험의 정도를 나타내는데, 설정한 수준보다 높아야 메시지를 보낸다. 설정 값 앞에 = 을 사용할 경우에는 해당 레벨의 위험도와 같은 경우에만 메시지를 기록하고, ! 는 제외 시킬 때 사용한다. action 은 메시지를 보낼 목적지나 행동들에 관한 설정으로 보통 파일명을 적는다.
facility 의 종류
cron : cron, at 과 같은 스케줄링 프로그램이 발생한 메시지
auth, securily : login 과 같이 인증프로그램 유형이 발생한 메시지
authpriv : ssh 와 같이 이증이 필요한 프로그램 유형이 발생한 메시지로 사용자 추가 시에도 메시지가 발생함
deamon : telnet, ftp 등과 같이 여러 데몬이 발생한 메시지
kern : 커널이 발생한 메시지
lpr : 프린트 유형의 프로그램이 발생한 메시지
mail : mail 시스템이 발생한 메시지
mark : syslog 에 의해 만들어지는 날짜 유형
news : 유즈넷 뉴스 프로그램 유형이 발생한 메시지
syslog : syslog 프로그램 유형이 발생한 메시지
user : 사용자 프로세스
uudp : UUCP(UNIX to UNIX Copy Protocol) 시스템이 발생한 메시지
local0 ~ local7 : 여분으로 남겨둔 유형
* : 모든 facility 를 의미
priority 의 종류
none : 지정한 facility 를 제외. 보통 앞에 다른 facility 에 대한 설정을 하고 ; 뒤에 특정한 facility 를 제외할 때 사용
debug : 프로그램을 디버깅할 때 발생하는 메시지
info : 통계. 기본 정보 메시지
notice : 특별한 주의를 필요하나 에러는 아닌 메시지
warning, warn : 주의가 필요한 경고 메시지
error, err : 에러가 발생하는 경우의 메시지
crit : 크게 급하지는 않지만 시스템에 문제가 생기는 단계의 메시지
alert : 즉각적인 조정을 해야 하는 상황
emerg, panic : 모든 사용자들에게 전달해야 할 위험한 상황
action 의 종류
file : 지정한 파일에 로그를 기록
@host : 지정한 호스트로 메시지를 전달
user : 지정한 사용자가 로그인한 경우 해당 사용자의 터미널로 전달
* : 현재 로그인되어 있는 모든 사용자의 화면으로 전달
콘솔 또는 터미널 : 지정한 터미널로 메시지를 전달
사용예
*.=crit;kern.none /var/log/critical
모든 facility 가 발생하는 메시지 중에 crit 수준의 메시지만 /var/log/critial 파일에 기록하는데 커널이 발생하는 메시지는 제외한다.
*.emerg *
모든 emerg 수준 이상의 문제가 발생하면 모든 사용자에게 메시지를 전달한다.
authpriv.* root,posein
인증 관련 로그를 root 및 posein 사용자의 터미널로 전송한다.
authpriv.* /dev/tty2
인증 관련 로그를 /dev/tty2 으로 전송한다.
mail.*;mail.!=info /var/log/mailog
mail 관련한 모든 정보는 /var/log/mailog 에 기록하는데, info 수준의 로그는 제외한다.
uucp,news.crit /var/log/news
uucp 및 news 에서 발생하는 crit 수준 이상의 메시지는 /var/log/news 에 기록한다.
정답
① daily
② rotate
③ 0600
④ dateext
/etc/logrotate.conf 의 주요 설정
weekly
로그 파일을 일주일마다 로테이트(rotate) 한다.
rotate 4
최대 4번까지 rotate 를 하는 설정이다.
create
로테이트를 한 후에 비어 있는 로그 파일을 생성하도록 설정하는 항목이다.
dateext
로테이션으로 생성되는 로그 파일에 해당 날짜를 덧붙여서 생성하는 항목이다.
compress
로테이트한 후에 생성된 로그 파일에 대해 압축할 때 사용하는 항목이다.
정답
PrintLastLog
X11Forwarding yes
원격에서 X11 포워딩을 허용하는 것이다. 이 옵션을 yes 로 설정하면 xhost 보다 안전한 방법으로 원격에 있는 X 프로그램을 사용할 수 있다.
PrintLastLog yes
로그인 시 지난번 로그인 기록을 보여줄 것인지를 설정한다.
TCPKeepAlive yes
클라이언트의 접속이 끊어졌는지를 체크하기 위해 일정 시간 메시지를 전달하도록 하는 설정이다.
정답
① -0
② -f
③ restore
④ -rf
dump 및 restore
파일들이 아닌 파일 시스템 전체를 백업할 때 사용하는 유틸리티로 보통 파티션 단위로 백업할 때 많이 사용한다. 전체 백업과 증분 백업을 지원하고 0~9 단계의 레벨을 가지고 증분 백업을 지원한다. 레벨 0 이 전체 백업리고 나머지 레벨들은 부분 백업 시에 사용한다. 백업할 때 /etc/fstab 파일을 참조하며 데이터 복원은 restore 명령을 사용한다.
dump 주요 옵션
-0~9 : 레벨을 지정한다.
-f : 백업할 매체나 파일명을 적는다.
-u : dump 작업 후에 /etc/dumpdates 라는 파일에 관련 정보를 기록한다.
# dump -0u -f backup.dump /dev/sda7
/dev/sda7 을 backup.dump 에 전체 백업하고, 작업 정보를 /etc/dumpdates 에 기록한다.
# dump -0u -f home.dump /home
/home 디렉터리를 home.dump 라는 이름으로 전체 백업하고, 작업 정보를 /etc/dumpdates 에 기록한다.
restore 주요옵션
-i : 대화식으로 복구할 파일을 선택한 후 복원할 때 사용한다.
-f : 백업할 매체나 파일명을 적는다.
-r : 전체 복원시에 사용한다. 이 옵션 사용 시에는 파일 시스템이 미리 생성되어 있어야 하고, 마운트도 되어 있어야 한다.
# restore -rf backup.dump
backup.dump 에 백업된 데이터를 전체 복원한다.
# restore -if backup.dump
backup.dump 에 백업된 데이터를 대화식으로 복원한다.
정답
① ServerRoot
② 80
③ ServerName
④ DocumentRoot
⑤ ihd@ihd.or.kr
⑥ DirectoryIndex
httpd.conf
아파치 웹 서버의 기본적인 설정을 담당하는 파일로 항목을 살펴보면 다음과 같다.
ServerRoot “/usr/local/apache”
웹 서버가 설치된 디렉터리를 나타내다.
Listen 80
아파치 웹 서버의 포트를 설정한다.
ServerAdmin posein@posein.org
서버에 문제가 발생하였을 경우 보낼 관리자의 이메일 주소를 적는다.
ServerName www.posein.org:80
서버의 도메인 이름을 적는다. 만약 도메인이 없을 경우에는 IP 주소를 적는다.
DocumentRoot “/usr/local/apacke/htdocs”
웹 문서가 위치하는 디렉터리를 나타낸다.
DirectoryIndex index.html
디렉터리의 인덱스 파일(처음열리는 파일)로 사용할 파일 이름을 적는다. 기본 index.html 에 필요에 따라 index.htm, incex.php, index.php5 등을 추가하도록 설정한다.
정답
① -L
② //ihd/ihd_share 또는 \\\\ihd\\ihd_share 또는 \\\\ihd\\ihd_share
(대소문자 구분 없음)
smbclient
리눅스 및 유닉스에서 사용하는 삼바 클라이언트 명령으로 윈도 서버로 접근할 때 사용된다. 사용법이 ftp 클라이언트 명령과 유사
하게 접속한 후에 특정 명령어를 입력하여 작업을 수행한다. 접속된 후에 나 help 라고 입력하면 사용 가능한 명령어의 목록을 볼
수 있다.
[사용법]
$ smbclient [option] [호스트명]
대상이 되는 호스트명은 192.168.12.22 처럼 IP 주소도 가능하고, 동일한 작업 그룹을 사용할 때 리눅스 시스템인 경우에는 호스트 이름, 윈도 시스템인 경우에는 컴퓨터 이름을 지정하면 된다.
또한 호스트명 다음에 공유 디렉터리명을 입력할 수 있는데, \(Back slash)나 /(slash) 기호 모두 사용 가능하다.
윈도에서 NetBIOS 를 이용하여 접속할 때 윈도 탐색기나 웹 브라우저로 \\192.168.12.22 형태로 접근 가능한데,
리눅스에서 smbclient 명령을 이용하여 \로 접근할 때는 일반적인 윈도에서 사용하는 개수의 2배로 지정한다.
또한 / 를 사용하는 경우에는 호스트명 앞에는 2개를 사용하고 디렉터리 구분은 1개를 사용한다.
예)
\\\\192.168.12.22\\source
//192.168.12.22/source
[주요 옵션]
-L : 접속하려는 삼바 서버의 공유 디렉터리 정보를 출력한다.
-U : 삼바 서버에 접속할 때 사용자명을 입력한다.
-M : 지정한 호스트명에 메시지를 전송할 때 사용한다. 명령을 입력하고 전송하려면 [ctrl]+[d]를 누른다.
정답
① NO
② YES
③ data_connection_timeout
④ chroot_local_user
정답
① in.fingerd
② .admin.net
③ in.telnetd
TCP Wrapper
TCP Wrapper 는 tcpd 라는 데몬이 슈퍼데몬인 inetd 에 의하여 수행되는 서비스들의 접근을 제어하도록 하는 프로그램이다. 주로 TCP 연결을 기반으로 하고 inetd 에 의해 관리되는 telnet, ftp, rlogin, rsh 등을 감시하고 필터링할 수 있다. TCP Wrapper 는 접근이 허가된 호스트의 목록파일인 /etc/hosts.allow 파일과 접근이 금지된 호스트의 목록 파일인 /etc/hosts.deny 파일을 이용한다. 이 두 파일의 검색 순서는 /etc/hosts.allow 를 먼저 읽어 들여서 등록된 호스트를 허가하고, /etc/hosts.deny 에 설정된 호스트를 금지시킨다. 즉, /etc/hosts.allow 파일에 등록되면 /etc/hosts.deny 파일에 상관없이 허가된다.
관련 파일 작성 규칙
[설정 형식]
daemon_list : client_list
daemon_list
한 개 이상의 데몬(서버 프로그램) 프로세스 혹은 예약어(와일드카드)를 쓸 수 있다. 여기서 주의할 점은 텔넷 관련 정책을 세울 경우에 telnet 이라는 서비스명이 아닌 in.telnetd 와 같은 실행 데몬명을 적어야 한다 여러 데몬을 명기할 때는 ‘,’ 로 구분한다.
client_list
한 개 이상의 호스트 이름, 주소, 패턴, 혹은 예약어를 쓸 수 있다.
[설정 예]
# vi /etc/hosts.allow
ALL : localhost, .posein.org
in.telnetd : 192.168.5.13
in.telnetd@192.168.1.25 : 192.168.1.
sshd : .posein.com EXCEPT chacker.posein.com
All EXCEPT vsftpd : .ihd.or.kr EXCEPT bad.ihd.or.kr
in.telnetd, vsftpd : 203.247.40., .hnu.kr
정답
① only
② forwarders
③ datasize
④ allow-query
options 구문
DNS 서버의 동작 및 제어와 관련된 여러 가지 설정을 하는 영역으로 존 파일이 위치하는 디렉터리명은 반드시 명기해야 한다. 주요 항목은 다음과 같다.
directory “/var/named”;
존 파일이 위치하는 디렉터리명을 명기한다.
forward (only|first);
forwarders 옵션과 함께 사용되면, only 나 first 두 값 중 하나를 갖는다. only 는 자신에게 들어온 도메인 질의를 지정한 다른 서버로 넘기도록 하는 것으로 다른 서버가 그에대한 응답이 없을 경우 그 자신도 그 질의에 대해 응답하지 않을 경우에 설정한다. first 는 타 서버에서 응답이 없을 때 자신이 응답하도록 할 때 설정한다.
forwarders {네임서버주소1; 네임서버주소2;…};
도메인에 대한 질의를 다른 서버로 넘길 때 사용하는 옵션으로 복수 형태로 지정 가능하고 구분은 세미콜론(;)으로 한다.
allow-query {192.168.0/24;};
네임 서버에 질의할 수 있는 호스트를 지정한다. 위와 같이 지정하면 192.168.0.0 네트워크 주소 대역에 속한 호스트만이 질의할 수 있다.
datasize 512M;
DNS 관련 정보를 캐싱을 하는데 사용하는 메모리를 제한할 때 쓰인다.
정답
① -F 또는 flush
② -i 또는 in-interface
③ -p 또는 protocol
④ dport 또는 destination-port
⑤ 22:23
⑥ -P 또는 policy
iptables
iptables 는 패킷 필터링(Packet Filtering) 도구로서 방화벽 구성이나 NAT(Network Address Translation) 에 사용된다.
iptables 의 사용하기
iptables 를 이용하여 정책을 설정할 때 가장 중요한 것은 실질적 룰(Rule)에 해당하는 매치(Match)와 타겟(Target)이다. 타겟은 iptables 에서 패킷이 규칙과 일치할 때 취하는 동작을 말하고, 매치는 iptables 가 규칙 타겟에 의해 명시되는 동작에 땨라 패킷을 처리하기 위해서 만족해야 하는 조건들이다.
[사용법]
# iptables [-t table] action chain match [-j target]
테이블(Table) 의 기본 설정은 Filter 이고, 다른 테이블을 지정할 때에는 -t 옵션을 사용한다.
액션(Action)은 사슬을 지정, 설정, 제어할 때 사용하는데, 주로 -N, -A 와 같은 대문자 옵션을 사용한다.
사슬(Chain)은 INPUT, OUTPUT 과 같이 입력하면 되고, 대소문자를 구분한다.
매치는 -d, -p 와 같은 소문자 옵션을 사용해서 설정한다.
타겟은 -j( jump) 옵션을 사용하여 설정한다.
[주요 액션]
-N : 새로운 사용자 정의 사슬을 만들다. ( new-chain)
-X : 비어있는 사슬을 제거한다. 단, 기본 사슬은 제거할 수 없다. ( delete-chain)
-P : 사슬의 기본 정책을 설정한다. ( policy)
-L : 현재 사슬의 규칙을 나열안다. ( list)
-F : 사슬로부터 규칙을 제거한다.
-Z : 사슬내의 모든 규칙들의 패킷과 바이트의 카운트를 0으로 만든다. ( zero)
-A : 사슬에 새로운 규칙을 추가한다. 해당 사슬에 맨 마지막 규칙으로 등록된다. ( append)
-I : 사슬에 규칙을 맨 첫 부분에 삽입한다. 룰 넘버를 사용하여 특정 부분에 삽입할 수도 있다.( insert)
-R : 사슬의 규칙을 교환한다.( replace)
-D : 사슬의 규칙을 제거한다. ( delete)
[주요 매치]
-s : 출발지 IP 주소나 네트워크와 매칭, 도메인, IP 주소, 넷마스크 값을 이용하여 표기( source, src)
-d : 목적지 IP 주소나 네트워크와 매칭, 도메인, IP 주소, 넷마스크 값을 이용하여 표기( destination, dst)
-p : 특정 프로토콜과 매칭, TCP, UDP, ICMP 와 같은 이름을 사용하고 대소문자는 구분하지 않음.
-i : 입력 인터페이스와 매칭( in-interface)
-o : 출력 인터페이스와 매칭( out-interface)
[주요 타겟(-j, jump)]
ACCEPT : 패킷을 허가하는 것으로 본래 라우팅대로 진행
DROP : 패킷을 거부하는 것으로 더 이상 어떤 처리도 수행되지 않고 버림
LOG : 패킷을 syslog 에 던달하여 기록. 일반적으로 /var/log/messages 에 저장
REJECT : 패킷을 버리고 동시에 적당한 응답 패킷을 전달
RETURN : 호출 사슬 내에서 패킷 처리를 계속 진행
iptables 의 확장 사용하기
TCP 의 확장
먼저 -p tcp 로 프로토콜을 지정하고 추가로 지정할 옵션을 사용한다.
[주요 옵션]
sport : 발신지에서 하나의 포트 또는 포트범위를 지정. /etc/services 에 기록된 포트 이름을 지정하거나 포트 번호로 지정할 수 있고, 범위는 ‘:’를 사용해
서 표기( source-port)
dport : 도착지의 포트를 지정하는 것으로 설정 방법은 sport 옵션과 동일( destination-port)